package com.city.lambda;

/**
 * Created with IntelliJ IDEA.
 * User: Cheng
 * Date: 2020/4/19
 * Time: 20:39
 * Description: No Description
 */
public class Mian {
    public static void main(String[] args) {
        /**
         * 实现方式
         */
        //1、实现接口实现类
        MyComparator myComparator = new MyComparator();
        myComparator.compare(2,1);
        //2、使用匿名内部内
        Comparator comparator = new Comparator() {
            @Override
            public int compare(int a, int b) {
                return a-b;
            }
        };
        //3、使用lambda表达式实现接口
        Comparator comparatorLambda=(a, b)->a-b;
    }

}
class MyComparator implements Comparator{
    @Override
    public int compare(int a, int b) {
        return a-b;
    }
}

/**
 * 虽然Lambda表达式对某些接口进行简单的实现，但是并不是所有的接口都可以使用Lambda表达式来实现，
 * 要求接口种定义的必须要实现的抽象方法只能是一个（注意：具体方法可以多个或者没有）。
 *
 * @FunctionalInterface
 *  这个注解用于修饰函数式接口，即意味着接口中的抽象方法只能有一个，否则编译器会报错。
 */
@FunctionalInterface
interface Comparator{
    int compare(int a,int b);
}
